// pages/service/service.js
var app = getApp();
const api = require('../../config/api');
import { orderOut } from '../../config/https';
const tool = require('../../config/tool.js');
import Notify from '../../vant/notify/notify';
import Toast from '../../vant/toast/toast';
Page({

  /**
   * 页面的初始数据
   */
  data: {
    tempFilePaths: [], //图片集合
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.setData(JSON.parse(options.item))
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  // 选择图片
  chooseImageTap(){
    var that = this
    wx.chooseImage({
      count: 4,
      sizeType: ['original', 'compressed'],
      sourceType: ['album', 'camera'],
      success(res) {
        // tempFilePath可以作为img标签的src属性显示图片
        const tempFilePaths = res.tempFilePaths
        that.setData({ tempFilePaths })
      }
    })
  },

  // 查看图片
  onPreview(e){
    const { index } = e.currentTarget.dataset
    const tempFilePaths = this.data.tempFilePaths
    wx.previewImage({
      current: tempFilePaths[index], // 当前显示图片的http链接
      urls: tempFilePaths // 需要预览的图片http链接列表
    })
  },

  // 删除图片
  onRemove(e){
    const { index } = e.currentTarget.dataset
    const tempFilePaths = this.data.tempFilePaths
    tempFilePaths.splice(index, 1);
    this.setData({ tempFilePaths })
  },

  // 提交数据
  formSubmit(e){
    const data = e.detail.value;
    if (!tool.u_Reg(data.detail, 'notEmpty')) {
      this.failNot("请填写问题描述!")
      return
    }
    Toast.loading({
      mask: true,
      message: '请稍后...'
    });
    orderOut({
      user_id: app.globalData.user_id,
      order_list_id: this.data.id,
      reson: data.detail
    }).then( res => {
      if (this.data.tempFilePaths.length > 0) {
        this.uploadimg({
          url: `${api.baseUrl}app.php?m=App&c=order&a=up_photo`,//这里是你图片上传的接口
          path: this.data.tempFilePaths//这里是选取的图片的地址数组
        });
      }else{
        Toast.success('提交成功');
        setTimeout(() => { wx.navigateBack() }, 1000)
      }
    })
  },

  succNot(msg) {
    Notify({
      text: msg,
      backgroundColor: '#1989fa'
    });
  },

  failNot(msg) {
    Notify({
      text: msg,
      backgroundColor: '#f44'
    });
  },

  //多张图片上传
  uploadimg(data){
    var that = this,
    i=data.i ? data.i : 0,//当前上传的哪张图片
    success=data.success ? data.success : 0,//上传成功的个数
    fail=data.fail ? data.fail : 0;//上传失败的个数
    wx.uploadFile({
      url: data.url,
      filePath: data.path[i],
      name: 'file',//这里根据自己的实际情况改
      formData: {
        user_id: app.globalData.user_id,
        order_list_id: this.data.id
      },//这里是上传图片时一起上传的数据
      success: (res) => {
        success++;//图片上传成功，图片上传成功的变量+1
        //这里可能有BUG，失败也会执行这里,所以这里应该是后台返回过来的状态码为成功时，这里的success才+1
      },
      fail: (res) => {
        fail++;//图片上传失败，图片上传失败的变量+1
      },
      complete: () => {
        i++;//这个图片执行完上传后，开始上传下一张
        if (i == data.path.length) {   //当图片传完时，停止调用          
          console.log('上传完毕');
          console.log('成功：' + success + " 失败：" + fail);
          Toast.success('上传成功');
          setTimeout(() => { wx.navigateBack()},1000)
        } else {//若图片还没有传完，则继续调用函数
          data.i = i;
          data.success = success;
          data.fail = fail;
          that.uploadimg(data);
        }
      }
    })
  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})